abstract data type
抽象データ型
Concept
(generic programming)
Formal methods
Functional specification
Generalized algebraic data type
Initial algebra
Liskov substitution principle
Type theory
Walls and Mirrors
https://en.wikipedia.org/wiki/Abstract_data_type